Video game to web site upload utility

ABSTRACT

A user of an interactive entertainment computing device can capture media representing aspects of the interactive entertainment. The media can be uploaded to a server that can extract appropriate information from the media, including identifiers of the user and the interactive entertainment. The media can then be presented to a user through a user interface, enabling the user to download and share the media. The presented media can be tailored to the user based on a relationship between authentication information used to access the media and a user identifier from within the context of the interactive entertainment.

BACKGROUND

Interactive audio-visual entertainment devices, such as video game consoles and the video games themselves, are designed to provide entertainment by engaging one or more users in an interactive experience having one or more goals. For example, video games based on sports engage users by providing an interactive experience in which the user attempts to win within the context of the sport on which the game is based. To provide an engaging experience, interactive audio-visual entertainment devices traditionally require the user to improve various skills, thereby engaging the user throughout the time that the user attempts to improve their skills. Increasingly skilled users are rewarded with aspects of the interactive entertainment that are generally not provided to less skilled users. For example, video games based on combat situations can provide skilled users the opportunity to use more potent weapons and travel to more exotic destinations.

To provide a more engaging experience, interactive audio-visual entertainment device offer an increasingly rich audio visual experience. For example, many video games feature high resolution graphics and multi-channel audio, both of which are supported by modern video game consoles. Consequently, interactive audio-visual entertainment may be entertaining, not only to those interacting with it, but also to spectators. Spectators, in addition to enjoying a rich audio visual experience, often seek to learn by merely observing others' interactions. For example, some video games enable users to receive special privileges once a specific series of actions are performed in a specific manner. Users can learn of those actions by observing other users interacting with the game.

Often, especially for competitive interactive audio-visual entertainment, such as video games that maintain a running tally, users may seek to demonstrate their prowess by inviting others to observe either the user interacting with the game directly, or a listing of the most successful tallies accumulated by the user. For example, users interacting with a video game simulating a race can share various race times as evidence of their respective successes. As interactive audio-visual entertainment options increase, the reasons for which one user may seek to share their experiences with others likewise increase. For example, modern video games often provide advanced customization options that are, in some respects, tangential to the purpose of the game. Nevertheless, such customization provides users with yet another reason to share their gaming experiences.

SUMMARY

Aspects of an interactive audio-visual experience are most easily shared if the user captures the aspect they want to share into a transportable and shareable format. Audio aspects can be captured into an audio file encoded using standard audio encoding schemes and video can be captured into an image file encoded using standard image encoding schemes or into a movie file, again encoded using standardized mechanisms. Some interactive audio-visual entertainment devices provide no mechanisms by which an aspect of the interactive experience can be captured into a transportable and shareable format. For example, while some video games provide the user with the ability to capture specific elements of the game, those elements are only saved within the context of the game itself and cannot be removed from the game.

To enable the export of aspects of an interactive audio-visual experience, a server program can receive raw data from a game, representing game-related media, such as media directed to presenting an aspect of the game, together with a header packet identifying the information. Subsequently, the server can parse out relevant elements from the header packet, such as information identifying the game, the user, or other relevant information. The information obtained by the server can subsequently be used to store the received game-related media in an appropriate manner, such as by storing it in a sub-location based on the game and entitling the data based on unique identifying information.

A service can monitor specific locations for particular types of data. In one embodiment, a single service can monitor specific locations for multiple types of data, including movie data, picture data or audio data. In an another embodiment multiple services can monitor specific locations, with each service being directed to specific types of data, such as one service being directed to movie data, a second service to picture data and a third service to audio data. Once the game-related media is detected, the service can validate the naming structure of the container file, and identify or derive further relevant information, such as identifying information. The service can then create an appropriate set of related data, such as thumbnails, to enable more efficient access and sharing of the game-related media. Such information can be provided to a website hosting the game-related media. To enhance security, remaining metadata that is not used can be removed.

A website hosting game-related media can require identifying information from users seeking to access the website. The identifying information can be used to associate a user of the website with a user of one or more games. Consequently, the website can present the user with the game-related media that is relevant to that user, such as game-related media captured by that user, or game-related media sent to that user by another user. The user can further download the game-related media, which can be presented in standardized formats to enable further sharing.

This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.

Additional features and advantages will be made apparent from the following detailed description that proceeds with reference to the accompanying drawings.

DESCRIPTION OF THE DRAWINGS

The following detailed description may be best understood when taken in conjunction with the accompanying drawings, of which:

FIG. 1 is a diagram of an exemplary environment for sharing media from interactive audio-visual entertainment;

FIG. 2 is a block diagram of an exemplary computing device;

FIG. 3 is an exemplary flow chart illustrating the receipt of media from interactive audio-visual entertainment;

FIG. 4 is an exemplary flow chart illustrating the organization of media from interactive audio-visual entertainment; and

FIG. 5 is an exemplary flow chart illustrating the sharing of media from interactive audio-visual entertainment.

DETAILED DESCRIPTION

The following description relates to the obtaining of media from interactive audio-visual entertainment, such as a video game, for sharing with others outside of the confines of the interactive entertainment itself. Back end server computing devices can host processes that interface with existing mechanisms in interactive audio-visual entertainment, thereby enabling the export of media from that audio-visual entertainment. The hosted processes can comprise a server program for receiving and storing game-related media, a service process for obtaining information about the game-related media that aids in its identification and for removing unneeded metadata, and a hosting process that provides user-specific access to the game-related media.

The techniques described herein focus on the mechanisms by which media from interactive audio-visual entertainment can be obtained, categorized, and provided to one or more users. One such mechanism comprises a server process that can receive data from interactive audio-visual entertainment and store the data in a predefined manner. Another mechanism comprises a service that retrieves the stored data and prepares it for presentation, including the generation of thumbnails, and the removal of unused, and potentially harmful metadata. A further mechanism comprises a hosting process that identifies users and provides user-specific data for browsing and downloading.

Although not required, the description below will be in the general context of instructions being executed by a device having computational abilities. Such “computing devices” include both traditional computers and consumer-electronic devices having computational abilities, such as those provided by a central processing unit. Thus, the description below will be in the general context of “computer-executable instructions,” such as program modules, that are capable of being executed by a such a “computing device.” More specifically, the description will reference acts and symbolic representations of operations that are performed by one or more computing devices or peripherals, unless indicated otherwise. As such, it will be understood that such acts and operations, which are at times referred to as being computer-executed, include the manipulation by a processing unit of electrical signals representing data in a structured form. This manipulation transforms the data or maintains it at locations in memory, which reconfigures or otherwise alters the operation of the computing device or peripherals in a manner well understood by those skilled in the art. The data structures where data is maintained are physical locations that have particular properties defined by the format of the data.

Generally, program modules include routines, programs, objects, components, data structures, and the like that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the computing devices need not be limited to conventional personal computers and conventional personal electronics devices, and can include other devices capable of computation, including hand-held devices, multi-processor systems, other microprocessor based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. Similarly, the computing devices need not be limited to a stand-alone device, as the mechanisms may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.

With reference to FIG. 1, an exemplary environment 99 for sharing aspects of interactive audio-visual entertainment is illustrated. The exemplary environment 99 includes interactive audio-visual entertainment hardware, such as an entertainment computing device 10, and interactive audio-visual entertainment software, such as a game 11 for use on the entertainment computing device 10. The exemplary environment 99 also comprises a personal computing device 40 having a web browser 41. In one embodiment, the personal computing device 40 and the entertainment computing device 10 are co-located such that media from the entertainment computing device 10 generated by a user will be accessed by that same user on the personal computing device 40.

The exemplary environment 99 further comprises an upload server computing device 20 and a website host computing device 30. The upload server computing device 20 hosts a server program 21 and a service 22, while the website host computing device 30 hosts a website 31 and a database 32. In one embodiment, the upload server computing device 20 and the website host computing device 30 are physically distinct computing devices as illustrated in FIG. 1. In an alternative embodiment, however, the upload server computing device 20 and the website host computing device 30 can be a single computing device hosting the server program 21, the service 22, the website 31 and the database 32.

For simplicity, FIG. 1, and the descriptions below, refer to a website 31, hosted by a website host computing device 30, and a web browser 41 executing on a personal computing device 40. However, the described mechanisms in no way require the use of either the HyperText Transfer Protocol (HTTP), nor the HyperText Markup Language (HTML). For example, the described mechanisms can be equally implemented via a File Transfer Protocol (FTP) site and any FTP client program. Likewise, the described mechanisms could be implemented using Really Simple Syndication (RSS) server software and RSS readers or aggregators. Thus, it is to be understood that, while the descriptions below will refer to a website, a website hosting computing device, and a web browser, that such descriptions are equally applicable to any network communication hosting program and associated network communication client program.

Returning to FIG. 1, a user interacting with the entertainment computing device 10, specifically via the mechanisms provided for by the game 11, can select game-related media for upload to the upload server computing device 20. For example, the game 11 can provide users with the ability to capture still images from the game, or to capture a sequence of events as a movie. The game 11 could likewise provide users with the ability to record various audio aspects of the game as a sound, or otherwise capture game-related media. Such images, movies, sounds, or other game-related media would traditionally be stored and accessible only from within the game 11 itself. For example, the game 11 could provide for a media gallery that would enable users interacting with the game to view previously captured media.

In one embodiment, the game 11 can be modified to upload previously captured media to another computing device, such as the upload server computing device 21 as indicated by the arrow 51 of FIG. 1. Such modifications can leverage the networking abilities present in many modern games, such as games which enable users to interact with, or compete with, other users over a networked connection. Often, games which enable multiple users to interact over a network connection do so by leveraging a server computing device to facilitate the maintenance and exchange of information common to all of the users. Such a server computing device can itself act as the upload server computing device 20, or it can redirect communications 51 to another computing device acting as the upload server computing device 20.

Uploaded game-related media can be received by the server program 21 running on the upload server computing device 20. In one embodiment, the server program 21 conforms to standard file transfer protocols, such as the Hyper Text Transfer Protocol (HTTP) or the File Transfer Protocol (FTP). Upon receipt of the game-related media from an entertainment computing device 10, the server program 21 can parse out relevant information that can have been included with the game-related media by the entertainment computing device or the game 11. Such relevant information can include an identifier of the game 11, an identifier of the user, a name the user selected for themselves within the context of the game or within the context of the server computing device used to exchange information common to all of the users (commonly referred to as a “gamer tag”), or other identifying or otherwise pertinent information. In one embodiment, such information can be stored in a header, such as an HTTP header packet.

Once the server program 21 has parsed out the relevant information, it can store, or otherwise persist, the received game-related media on the upload server computing device 20 or on another computing device communicationally connected to the upload server computing device. In one embodiment, the game-related media is stored in a folder, or other type of storage partition, based on the game 11 that uploaded the game-related media. For example, the game identifier provided with the game-related media can be associated with a common name for the game 11, and the folder into which the server program 21 stores the game-related media can be identified with the same common name of the game 11. Alternatively, the folder into which the server program 21 stores the game-related media can be identified with the game identifier itself, without requiring the server program 21 to lookup an associated common name of the game 11.

To identify the game-related media when it is stored, the server program 21 can generate a file name for the file containing the game-related media. In one embodiment, the server program 21 can generate a random identifier based, at least in part, on the identifier of the user, the user's gamer tag, or some combination thereof. The randomness of the identifier can distinguish between multiple game-related media uploaded by the same user.

Once the server program 21 has stored the game-related media as a file on the upload server computing device 20, a service 22 can detect the storage of the game-related media and can further process the game related media to prepare it for sharing. In one embodiment, the service 22 can continually monitor one or more storage locations on the upload server computing device 20, or on another computing device communicationally connected to the upload server computing device 20. When the service 22 detects the storage of new game-related media, it can first perform one or more verifications to ensure that the detected file was properly stored. For example, the service 22 can verify that the file name is properly constructed. In addition, the service 22, which can access the algorithm used by the server program 21 to generate the file name, can reverse that algorithm to extract information from the file name, such as the user's gamer tag or identifier. Information identifying the game 11, which generated the game-related media, can be obtained by the service 22 from the folder in which the game-related media was stored. For example, the name of the folder can be a game identifier or the common name of the game 11, as indicated above.

The service 22 can also prepare the game-related media for sharing, such as through a web server. In one embodiment, the service 22 can create one or more appropriate thumbnails for the game-related media. For example, if the game-related media comprises images or video, the service 22 can generate a smaller, lower resolution image or a still frame image to act as a thumbnail for the game-related media. Likewise, if the game-related media comprises audio, the service 22 can generate a shorter, lower bit rate recording to act as a thumbnail for the game-related media.

To enhance the security of game-related media that is shared, the service 22 can remove unneeded meta-data from the game-related media. As will be known by those skilled in the art, some media files can comprise a substantial amount of meta-data, which can be used to exploit security weaknesses. Since the meta-data referenced by, or otherwise used by, the service 22 is limited, the remaining meta-data can be removed by the service 22 to enhance the security of the sharing of game-related media.

Once the service 22 has completed its processing, it can transfer, via communications 52, the game-related media to a website host computing device 30, on which a website 31 is executing. In one embodiment, the website host computing device 30 can be co-located with the upload server computing device 20, such that the server program 21, the service 22 and the website 31 are all being executed by the same computing device. In another embodiment, the website host computing device 30 can be a distinct computing device in the manner illustrated in FIG. 1.

The transfer 52 of the game-related media from the service 22 to the website host computing device 30 includes the transfer of thumbnails generated by the service and any other data augmenting the game-related media data itself. The transfer 52 likewise includes categorizing information extracted by the service 22, such as the identifier of the game 11, the common name of the game, the identifier of the user, the user's gamer tag, or other information that can be used to categorize the game-related media for easier access through the website 31.

The website host computing device 30, upon receipt of the categorized and augmented game-related media, can store the received information into a database 32. For example, using a relational database, the game-related media itself can be related to the categorizing information provided by the service 22 and it can further be related to the thumbnail likewise provided by the service 22. Consequently, the game-related media can be searched for based on any one of the categorizing information provided, including, for example, the identifier of the game 11, the common name of the game, the identifier of the user or the gamer tag. The game-related media can likewise be searched for via the thumbnails provided by the service 22.

When a user accesses the website 31, such as with a web browser 41 on personal computing device 40, the website can enable the user to download one or more game-related media as indicated by communication 53. In one embodiment, the website 31 can present to the user for downloading any of the game-related media stored in the database 32. Such a presentation can comprise the creation of one or more web pages comprising thumbnails, identifying information, or some combination thereof. Once the personal computing device 40 has received these web pages, and they have been displayed to the user by the web browser 41, the user can select one or more game-related media for download by selecting a corresponding thumbnail or other identifying information through the web browser. Such a selection can be communicated back to the website 31 in a known manner, which can reference the database 32 to obtain the game-related media selected by the user, and provide that media, via communication 53, to the web browser 41. Once stored on the personal computing device 40, the game-related media can be shared by the user in the same manner as any other media on the personal computing device.

In an alternative embodiment, the website 31 can require users to authenticate themselves, such as by providing a user name and a password. The authentication information provided can identify a particular user of the game 11. More specifically, the user name provided by the user to the website 31 can be associated with a user identifier or a gamer tag. Such as association can either be maintained by the website host computing device 30, or on a separate computing device or system. With such an association, the website 31 can present to the authenticated user only the game-related media that is associated with that user in the database, such as via the user's identifier or gamer tag. In one embodiment, the website 31 provides, to authenticated users, one or more web pages comprising thumbnails, identifying information, or some combination thereof corresponding only to game-related media captured by that user. In an alternative embodiment, the website 31 provides, to authenticated users, not only access to the game-related media captured by that user, but also to game-related media captured by other users and shared by those other users with the current user. In either case, the user can select one or more game-related media for download by selecting a corresponding thumbnail or other identifying information that was presented through the web browser 41. Such a selection can be communicated back to the website 31 in a known manner, which can reference the database 32 to obtain the game-related media selected by the user, and provide that media, via communication 53, to the web browser 41. As before, once the game-related media is stored on the personal computing device 40, it can be shared in the same manner as any other media on the personal computing device.

Turning to FIG. 2, an exemplary computing device 100 is illustrated. As indicated previously, the term “computing device,” as used herein, includes consumer entertainment devices, such a video game consoles, digital video recorders, and content provider interfaces such as the ubiquitous “cable box.” Thus, the exemplary computing device 100 can be representative of any of the computing devices shown in FIG. 1, including the entertainment computing device 10, the upload server computing device 20, the website host computing device 30, the personal computing device 40, or any combination thereof since, as previously indicated, the computing devices of FIG. 1 do not have to be physically distinct from one another.

The exemplary computing device 100 can include, but is not limited to, one or more central processing units (CPUs) 120, a system memory 130, and a system bus 121 that couples various system components including the system memory to the processing unit 120. The system bus 121 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The computing device 100 can include graphics hardware, including, but not limited to, a graphics hardware interface 190 and a display device 191.

The computing device 100 also typically includes computer readable media, which can include any available media that can be accessed by computing device 100 and includes both volatile and nonvolatile media and removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media, communication media or combinations thereof. Computer storage media includes media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.

The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements within computing device 100, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation, FIG. 2 illustrates operating system 134, other program modules 135, and program data 136.

The computing device 100 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only, FIG. 2 illustrates a hard disk drive 141 that reads from or writes to nonvolatile magnetic media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used with the exemplary computing device include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive 141 is typically connected to the system bus 121 through an interface such as non-volatile memory interface 140.

The drives and their associated computer storage media discussed above and illustrated in FIG. 2, provide storage of computer readable instructions, data structures, program modules and other data for the computing device 100. In FIG. 2, for example, hard disk drive 141 is illustrated as storing operating system 144, other program modules 145, and program data 146. Note that these components can either be the same as or different from operating system 134, other program modules 135 and program data 136. Operating system 144, other program modules 145 and program data 146 are given different numbers hereto illustrate that, at a minimum, they are different copies.

Of relevance to the descriptions below, the computing device 100 may operate in a networked environment using logical connections to one or more remote computers. For simplicity of illustration, and in conformance with the exemplary system 99 of FIG. 1, the computing device 100 is shown in FIG. 2 to be connected to the network 90. The computing device 100 is not limited to any particular network or networking protocols. The network connection depicted in FIGS. 1 and 2 is a general network connection 171 that can be a local area network (LAN), a wide area network (WAN) or other networks. The computing device 100 is connected to the general network connection 171 through a network interface or adapter 170 which is, in turn, connected to the system bus 121. In a networked environment, program modules depicted relative to the computing device 100, or portions or peripherals thereof, may be stored in the memory of one or more other computing devices that are communicatively coupled to the computing device 100 through the general network connection 171. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between computing devices may be used.

The general network connection 171 to the network 90 can be used to communicate with one or more other computing devices that are likewise connected to the network. Communications 51, 52 and 53, illustrated in FIG. 1, are shown as proceeding directly between computing devices 10, 20, 30 and 40, and bypassing network 90, only for simplicity of illustration. Instead, more accurately, communications 51, 52 and 53 are exchanged between the computing devices 10, 20, 30 and 40 through the network 90 in a manner well known to those skilled in the art.

Communication 51, as explained previously, can comprise the transmission of game-related media from a game 11 to a server program 21 designed to receive such game-related media. Communication 52, in turn, can comprise the transmission of categorized and augmented game-related media to a website host computing device 30, and communication 53 can comprise the transmission of game-related media to the personal computing device 40. As described below, FIGS. 3, 4 and 5 illustrate flow diagrams corresponding to processes that either trigger or receive these communications. In particular, FIG. 3 illustrates an exemplary process performed by the server program 21 upon receipt of communication 51, FIG. 4 illustrates an exemplary process performed by the service 22 prior to the transmission of communication 52, and FIG. 5 illustrates an exemplary process performed by the website 31 prior to the transmission 53.

Turning to FIG. 3, a flow diagram 300 begins with the receipt of the game-related media at step 310. As described previously, the game-related media can be sent by a game 11 executing on an entertainment computing device 10. The game 11 comprises mechanisms for enabling a user to capture game-related media, such as a picture, movie, audio, or other media. The game 11 can further comprise mechanisms for enabling the user to view previously captured game-related media within the context of the game, such as through a “gallery” generated by the game. In one embodiment, network communication capability sufficient to encapsulate such previously captured game-related media can be added, either to the game 11 itself, or to the entertainment computing device 10. The network communication capability can transmit one or more previously captured game-related media to the upload server computing device 20 by constructing one or more network packets comprising some or all of the game-related media. The transmitted game-related media can be selected by the user of the game 11, such as through the gallery.

In one embodiment, the network packets include a header packet having a user data section for transmitting information about the game-related media, such as the name of the game 11 from which the game-related media was obtained, a unique identifier for the game 11, a unique identifier for the user of the game that captured the game-related media, the user's gamer tag, or other information that can further identify the game-related media. Such information can be stored as a string in the header packet, with appropriate separators, such as a “#” symbol, dividing the individual elements of data. In an alternative embodiment, the above information can be stored in separate elements within the header packet or can be otherwise transmitted in an appropriate manner.

When the server program 21 receives the game-related media at step 310, it can, at step 320, parse the header packet, separating out the individual elements of data, as delineated by the separators. As part of the parsing step 320, the server program 21 can further encode each of the individual elements into strings, or other appropriate data structures, for subsequent processing. One aspect of such subsequent processing can be the identification of a “common” name of the game 11, such as the name by which the game is marketed, at step 330. If the information provided in the header packet did not already comprise the name of the game 11, but instead comprised a unique identifier, the server program 21 can use the unique game identifier to look up the common name of the game. A correlation between game identifiers and game names can be maintained by the upload server computing device 20, or it can be maintained by another computing device connected to the network 90.

Step 330 can additionally verify that the game 11 sending the game-related media is valid. For example, if the identifier provided in the header packet does not correspond to any common name, the game 11 may not be a game that is to be allowed to upload game-related media. In such a case, the server program 21 need not perform any further operations with respect to the received game-related media. In an alternative embodiment, however, the server program 21 can provide an error message back to the game 11 to provide troubleshooting information, should it be needed. In a further alternative embodiment, the server program 21 can perform additional verifications beyond game identification, such as verifying that the game-related media is encoded in an acceptable format, such as a standard image, movie, or audio format.

If the verifications do not detect a problem, then at step 340, the server program 21 can create a random Globally Unique IDentifier (GUID) for the game-related media received at step 310. In one embodiment, the GUID can be created and subsequently combined with the user's identifier, gamer tag, or some combination thereof to create a unique combination. In addition, the GUID can also be combined with, or otherwise related to, the time when the game-related media was captured or the time when it was received at step 310. By using a continually changing parameter, such as a time parameter, the generated GUID can remain unique even when the same user uploads multiple game-related media from the same game within a narrow span of time. Once the server program 21 has generated a GUID at step 340 and combined it with the above listed information, it can, at step 350, assign a name to the file comprising the combination. In another embodiment, the file name can further comprise additional elements that identify the user or the game or both.

The file comprising the game-related media can be stored in a folder by the server program at step 360. The folder and the file comprising the game-related media can be stored either locally on the upload server computing device 20, or they can stored on one or more remote computing devices connected to the network 90. The folder can be named after, or otherwise associated with, the game 11 from which the game-related media was received. In one embodiment, the folder can simply have the same name as the name of the game. In an alternative embodiment, the name of the folder can include the name of the game, the game identifier or some combination therefore, while in a still further alternative embodiment, the folder name can comprise additional information as well. Once the folder has been created and named, if it was not already present, and once the file comprising the received game-related media has been stored therein, the processing performed by the server program 21 can end at step 370.

Turning to FIG. 4, a flow diagram 400 is shown representing exemplary processing performed by the service 22 of FIG. 1. As illustrated by flow diagram 400, the processing performed by service 22 can, at step 410, monitor selected storage locations. Such monitored storage locations can coincide with the storage locations in which the server program 21 stores the received game-related media and, as indicated previously, can be local to the upload server computing device 20, or they can be located on one or more remote computing devices connected to the network 90. Once the service 22 detects the creation of a file within the monitored storage locations, as indicated by step 420, the service 22 can further process the game-related media and prepare it for sharing via the website 31.

Initially, at step 430, the service 22 can verify the name of the file to ensure that it is a file that the service should be addressing, and not merely a file accidentally saved to the monitored storage location. The file name verification of step 430 can include extracting, from the file name, information such as the identifier of the user or the user's gamer tag. If the file is not verified at step 430, it can be stored in an appropriate location for further review, such as by an administrator of the upload server computing device 20. The service 22 can further identify or derive additional information regarding the game-related media at step 440. More specifically, once the file name has been validated at step 430, the service 22 can read the file from the monitored storage location and can acquire any of the metadata associated with the file. In addition, the service 22 can perform further processing with respect to the information obtained from the file name. For example, if the service 22 was only able to derive a user's gamer tag from the file name, the service can match the gamer tag to a user identifier using either a local or remote database associating user identifiers with the gamer tags those users selected within the context of specific games, such as game 11.

To facilitate the identification of the game-related media, the service 22 can, at step 450, create thumbnails of the game-related media. As will be known by those skilled in the art, thumbnails comprise smaller, lower resolution media that is analogous to the game-related media. For example, if the game-related media was a high definition image from the game 11, the service 22 can create a smaller, lower resolution version of the image at step 450 to act as a thumbnail. A still image can likewise act as a thumbnail if the game-related media was a video segment. Audio media can be likewise compressed in both duration and quality to yield a thumbnail for an audio-only game-related media.

At step 460, the service 22 can remove any of the metadata associated with the file comprising the game-related media that the service is not using or referencing. As will be known by those skilled in the art, some media file formats can comprise a large amount of metadata that can harbor malicious code. Consequently, in one embodiment, the service 22 can remove such metadata. Any metadata that is left by the service 22 can be limited, for security reasons, to character data.

Once the file comprising the game-related media has been cleaned of potentially malicious elements, the service 22 can, at step 470, store the game-related media, as well as some or all of the additional information identified, derived or created by the service, in the database 32. Such additional information can include the thumbnail, the identifier of the game 11, the common name of the game, the identifier of the user, the gamer tag of the user, or any other relevant information, or any combination thereof. After storing the game-related media at step 470, the service 22 can end at step 480.

Turning to FIG. 5, a flow diagram 500 illustrates exemplary processing performed by the website 31. As shown, the website 31 can wait for a user at step 530. In one embodiment, the website 31 can limit users to accessing only the game-related media that was captured and uploaded by that user, or game-related media that the user has been granted permission to access. In an alternative embodiment, the website 31 can eschew such limitations, and can provide any user access to all of the game-related media stored in the database 32. In the case of the latter, steps 540 and 550 can be skipped, and processing can proceed to step 560, which will be described below. However, if the website 31 limits access to the game-related media, it can check, at step 540, if a user has provided identification and password. If the user has provided authenticating information, the website 31 can authenticate the user at step 550.

The process of authenticating a user at step 550 can comprise associating a user's gamer tag or user identifier with the identification provided at step 540. Such an association can be stored locally on the website host computing device 30, or it can be stored remotely on one or more computing devices connected to the network 90. In one embodiment, the user identification and password provided at step 540 are part of a network “passport” that the user can use to log on to additional websites. Such a “passport” can be maintained in a central location that can comprise information linking the user's passport to other relevant information about the user, including the user's name and address, billing information and, of relevance to the descriptions below, the user's gamer tag or other game-related identifying information. In such a case, the website 31 can, as part of the process of authenticating the user at step 550, reference the centralized passport database to determine the user's game-related identifier or gamer tag based on the information provided at step 540.

Subsequently, at step 560, the website 31 can present thumbnails of the game-related media, other information identifying the game-related media, or some combination thereof, to the user. If the website 31 only allowed a user to access game-related media that the user generated, or game-related media to which the user was specifically granted access, then the game-related media that is relevant to that user will be limited. However, if the website 31 provided any user access to any game-related media, then all of the game-related media in the database 32 is relevant to any user.

The database can be searched based on user identifiers, including a user's game-related identifier and a user's gamer tag. Consequently, in presenting the thumbnails at step 560, the website 31 can, once it has authenticated the user at step 550, search the database 32 for the game-related media associated with that user's gamer tag or game-related identifier. Once the relevant game-related media has been identified by the website 31, the website can request the associated thumbnails for presentation to the user. The thumbnails can be presented to the user by generating one or more web pages, comprising those thumbnails, for display by the browser 41 in a manner well known to those skilled in the art.

If the user selects one or more thumbnails at step 570, the website 31 can receive a notification of such a selection from the browser 41, and can provide the requested game-related media to the browser at step 580. Once downloaded by the browser 41, the game-related media can be saved on the personal computing device 40 and can be shared in the same manner as any other media stored on the personal computing device. Consequently, once the website 31 has provided the selected game-related media to the browser 41 at step 580, it an end at step 590. However, if the user does not select a thumbnail at step 570, the website 31 can continue to present the web pages, at step 560, comprising thumbnails or other information identifying the relevant game-related media.

In one embodiment, the website 31 can also perform various maintenance tasks not illustrated in FIG. 5. For example, the website 31 can enable users to add additional data about the game-related media into the database 32. Users can, thereby, attach notes to various game-related media, or the users could grant access to another user, causing the website 31 to modify the database 32 to associate the user to whom access was granted with the appropriate game-related media.

Other maintenance tasks can also be performed by the website 31. For example, the website 31 can periodically discard game-related media that is older than a selected threshold. Such game-related media can be identified based on a time stamp that the service 22 can add into the database 32 and associated with game-related media when the game-related media is stored at step 470. Alternatively, the website 31 can periodically discard game-related media associated with a particular user that exceeds that user's quota. To enable users to manage such a quota, the website 31 can further discard game-related media when instructed by the user to do so, such as through commands entered into the web browser 41. Before discarding game-related media at the user's request, the website 31 can first verify that the user has the authority to discard the game-related media, such as if the user was the one who originally generated the game-related media.

As can be seen from the above descriptions, game-related media can be uploaded from an entertainment computing device to a server computing device, where it can be processed and ultimately presented, through an appropriate user interface, such as a web page, to one or more users who can download and share the game-related media. In view of the many possible variations of the subject matter described herein, we claim as our invention all such embodiments as may come within the scope of the following claims and equivalents thereto. 

1. One or more computer-readable media comprising computer-executable instructions for sharing media generated by, and captured within a context of, interactive audio-visual entertainment, the computer-executable instructions directed to steps comprising: receiving media from interactive audio-visual entertainment representing an aspect of the audio-visual entertainment; validating the received media; identifying a user of the interactive audio-visual entertainment who captured the media; and associating the identified user with the media.
 2. The computer-readable media of claim 1, comprising further computer-executable instructions directed to generating a thumbnail of the media, wherein the presenting the media comprises presenting the thumbnail.
 3. The computer-readable media of claim 1, comprising further computer-executable instructions directed to identifying the interactive audio-visual entertainment and associating the identified interactive audio-visual entertainment with the media.
 4. The computer-readable media of claim 1, wherein the interactive audio-visual entertainment is a video game.
 5. The computer-readable media of claim 1, wherein the associating the identified user with the media comprises naming a file comprising the media with a name derived from a combination of a random value and an identifier of the user.
 6. The computer-readable media of claim 1, wherein the associating the identified user with the media comprises storing the received media in a database.
 7. The computer-readable media of claim 1, wherein the computer-executable instructions are directed to further steps comprising: removing unneeded meta-data from the received media.
 8. The computer-readable media of claim 1, wherein the identifying the user comprises obtaining a gamer tag associated with the user in the context of the interactive audio-visual entertainment.
 9. A system for sharing media generated by, and captured within the context of, interactive audio-visual entertainment, the system comprising: a first server program performing steps comprising: receiving media from interactive audio-visual entertainment representing an aspect of the audio-visual entertainment; a service performing steps comprising: identifying a user of the interactive audio-visual entertainment who captured the media and associating the identified user with the media, and transmitting the media; and a second server program performing steps comprising: receiving user authentication information, associating the user authentication information with the identified user, and presenting, for download, the media associated with the identified user.
 10. The system of claim 9, wherein the second server program performs further steps comprising generating a thumbnail of the media.
 11. The system of claim 9, wherein the first server program performs further steps comprising identifying the interactive audio-visual entertainment and associating the identified interactive audio-visual entertainment with the media.
 12. The system of claim 9, wherein the first server program performs further steps comprising verifying that the received media is from proper interactive audio-visual entertainment.
 13. The system of claim 9, wherein the second server program performs further steps comprising transmitting the media in response to a user request to download the media.
 14. The system of claim 9, wherein the transmitting the media comprises transmitting information regarding the identified user and transmitting a thumbnail of the media; and wherein the receiving the media comprises receiving the information regarding the identified user and receiving the thumbnail of the media.
 15. The system of claim 9, wherein the service performs further steps comprising storing the media in a database associating the media with identifying information.
 16. One or more computer-readable media comprising computer-executable instructions for sharing media generated by, and captured within a context of, interactive audio-visual entertainment, the computer-executable instructions directed to steps comprising: receiving user authentication information; associating the user authentication information with a user identifier that identifies the user within the context of the interactive audio-visual entertainment; and presenting, for download, media that represents an aspect of the audio-visual entertainment, and that is associated with the user identifier.
 17. The method of claim 16, further comprising the step of generating a thumbnail of the media, wherein the presenting the media comprises presenting the thumbnail.
 18. The method of claim 16, further comprising the step of transmitting the media in response to a user request to download the media.
 19. The method of claim 16, wherein the interactive audio-visual entertainment is a video game.
 20. The method of claim 16, wherein the received user authentication comprises an online passport that authenticates the user at multiple sites. 